<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>

    // 1.var 有变量提前声明
    /*
    b的值为undefined，相当于
    var b;
    console.log(b);
    b = 10;
     */
    console.log(b);
    var b = 2;

    // 2. var 可以重复声明
    /*
    此处d的值为2
     */
    var d = 1;
    var d = 2;
    console.log(d);

    //==================================================================================//

    // 1. let 没有变量提前声明
    /*
    此处会报错a变量未定义
     */
    console.log(a);
    let a = 10;

    // 2. 是一个块作用域
    /*
    此处会报错c变量未定义
     */
    if(1){
        let c = 3;
    }
    console.log(c);

    // 3. let不能重复声明
    /*
    此处重复声明会报错
     */
    let f = 1;
    let f = 2;
    console.log(f);

    //==================================================================================//

    // 1. const 一旦被声明无法被改变（常量）
    const g = 1;
    g = 2;
    console.log(g);

    // 但可修改对象属性
    // person.name被修改为张松
    const person = {
        name:'李三'
    }
    person.name = '张松';
    console.log(person.name);
</script>
</body>
</html>